var prefix = ctx + "md/manage"
$(function() {
	load();
	$(".chosen-select").chosen({
		width : '90%',
		allow_single_deselect : true,
		search_contains : true
	});
	
	// 删除行
	$("body").on("click", ".btn-warning", function() {
		console.log($(this).parents("tr"));
		$(this).parents("tr").remove();
	});
	// 添加行
	$("body").on("click", ".btn-primary", function() {
		$(this).parents("tr").after(addTr());
		$(".chosen-select").chosen({
			width : '90%',
			allow_single_deselect : true,
			search_contains : true
		});
	});
	
	// 数据类型变化联动长度变化
	$("body").on("click", ".active-result", function() {
		let html = "";
		let type = $(this).parents("td").find('select[name=columnType]').val();
		if(type == "DATE" || type == "TEXT" || type == "DATETIME"){
			html += "-";
		}else if(type == "DOUBLE"){
			html += "<input id=\"columnPrecision\" name=\"columnPrecision\" class=\"form-control-slim2\" type=\"number\" placeholder=\"精度\">\n";
			html += "<input id=\"columnScale\" name=\"columnScale\" class=\"form-control-slim2\" type=\"number\" placeholder=\"小数点后位数\">\n";
		}else{
			html = "<input id=\"columnLength\" name=\"columnLength\" class=\"form-control2\" type=\"number\" placeholder=\"长度\">\n";
		}
		$(this).parents("td").next().html(html);
	});
	
	// input[type=number] 限制 负数，小数 输入
	$("body").on('click',"input[type=number]",function(){
        if(! /^\d+$/.test(this.value)){
            this.value='';
        }
	});
	$("body").on('keyup',"input[type=number]",function(){
        if(! /^\d+$/.test(this.value)){
            this.value='';
        }
	});

});

function load() {
	$('#exampleTable2')
			.bootstrapTable(
					{
						ajaxOptions : {
							async : false
						// 如果设置为异步，需要等请求成功后才会生成下面的tr和td，就无法在td中添加按钮
						},
						method : 'get', // 服务器数据的请求方式 get or post
						// url : prefix + "/listColumns/" + $("#tableId").val(),
						// // 服务器数据的加载地址
						// showRefresh : true,
						// showToggle : true,
						// showColumns : true,
						iconSize : 'outline',
						toolbar : '#exampleToolbar',
						striped : true, // 设置为true会有隔行变色效果
						dataType : "json", // 服务器返回的数据类型
						// pagination : false, // 设置为true会在底部显示分页条
						// queryParamsType : "limit",
						// //设置为limit则会发送符合RESTFull格式的参数
						// singleSelect : false, // 设置为true将禁止多选
						// contentType : "application/x-www-form-urlencoded",
						// //发送到服务器的数据编码类型
						// pageSize : 1000000, // 如果设置了分页，每页数据条数
						// pageNumber : 1, // 如果设置了分布，首页页码
						// search : true, // 是否显示搜索框
						// showColumns : true, // 是否显示内容下拉框（选择显示的列）
						sidePagination : "server", // 设置在哪里进行分页，可选值为"client" 或者
						// "server"
						queryParams : function(params) {
							return {
							// 说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
							};
						},
						// //请求服务器数据时，你可以通过重写参数的方式添加一些额外的参数，例如 toolbar 中的参数 如果
						// queryParamsType = 'limit' ,返回参数必须包含
						// limit, offset, search, sort, order 否则, 需要包含:
						// pageSize, pageNumber, searchText, sortName,
						// sortOrder.
						// 返回false将会终止请求
						columns : [
								{
									field : 'columnName',
									title : '字段名'
								},
								{
									field : 'columnComment',
									title : '中文描述',
								},
								{
									field : 'columnType',
									title : '类型',
								},
								{
									field : 'columnLength',
									title : '长度',
									width: '300px',
									visible : true
								},
								{
									title : '字段标记',
									field : 'columnTag',
								},
								{
									field : 'columnPrecision',
									title : '精度',
									visible : false
								},
								{
									field : 'columnScale',
									title : '小数点后位数',
									visible : false
								},
								{
									field : 'columnIsNullable',
									title : '是否允许null',
									visible : false
								},
								{
									field : 'columnIsKey',
									title : '是否主键',
									visible : false
								},
								{
									field : 'orderNum',
									title : '排序号',
									visible : false
								},
								{
									title : '操作',
									field : 'tableId',
									align : 'center',
									width : '140',
									formatter : function(value, row, index) {
										var e = '<a class="btn btn-primary btn-sm '
												+ s_add_h
												+ '" href="#" title="字段信息编辑"  mce_href="#"><i class="fa fa-plus"></i></a> ';
										return e;
									}
								} ],
						onLoadSuccess : function() {
							$(".chosen-select222").chosen({
								width : '90%',
								allow_single_deselect : true,
								search_contains : true
							});
						}
					});
}
function reLoad() {
	$('#exampleTable2').bootstrapTable('refresh');
}

function batchColumnsAdd() {
	var rows = new Array();
	var obj;
	var source = $('#exampleTable2 tbody tr');
	for (let i = 0, j = 1; i < $('#exampleTable2 tbody tr').length; i++, j++) {
		obj = new Object();
		obj.columnName = $(source[i]).find('input[name=columnName]').val();
		obj.columnComment = $(source[i]).find('input[name=columnComment]')
				.val();
		obj.columnType = $(source[i]).find('select[name=columnType]').val();
		obj.columnLength = $(source[i]).find('input[name=columnLength]').val();
		obj.columnPrecision = $(source[i]).find('input[name=columnPrecision]')
				.val();
		obj.columnScale = $(source[i]).find('input[name=columnScale]').val();

		obj.columnTag = "";
		selectArray = $(source[i]).find('select[multiple=multiple]').val();
		for (x in selectArray) {
			obj.columnTag += selectArray[x] + ",";
		}

		obj.columnIsNullable = "YES";
		obj.columnIsKey = "NO";
		obj.orderNum = j;
		rows.push(obj);
	}

	console.log(JSON.stringify(rows));

	if ($("#changeTypeId").val() == '2') {
		let flag = false;
		for (i in rows) {
			if (rows[i].columnTag.indexOf("15") != -1) {
				flag = true;
			}
		}
		if (flag == false) {
			layer.msg("增量同步必须指定入库时间的字段标记");
			return;
		}
	}
	if (rows.length == 0) {
		layer.msg("请选择要添加的字段");
		return;
	}
	layer.confirm("确认要添加选中的'" + rows.length + "'个字段吗?", {
		btn : [ '确定', '取消' ]
	// 按钮
	}, function() {
		var json = new Array();
		// 遍历所有选择的行数据，取每条数据对应的ID
		$.each(rows, function(i, row) {
			delete row["0"];
			json.push(row);
		});
		console.log(JSON.stringify(json));
		$.ajax({
			type : "POST",
			contentType : 'application/json;charset=utf-8', // 设置请求头信息
			dataType : "json",
			data : JSON.stringify(json),
			url : prefix + '/batchColumnsAdd/' + $("#tableId").val(),
			success : function(r) {
				if (r.code == 0) {
					layer.msg(r.msg);
					parent.reLoad();
					var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
					parent.layer.close(index);
				} else {
					layer.msg(r.msg);
				}
			}
		});
	}, function() {
	});
}

function addTr() {
	var Tr = "";
    Tr += "<tr data-index=\"0\">\n";
    Tr += "	<td style=\"\">\n";
    Tr += "		<input id=\"columnName\" name=\"columnName\" class=\"form-control\" type=\"text\" placeholder=\"字段名\">\n";
    Tr += "	<\/td>\n";
    Tr += "	<td style=\"\">\n";
    Tr += "		<input id=\"columnComment\" name=\"columnComment\" class=\"form-control\" type=\"text\" placeholder=\"中文描述\">\n";
    Tr += "	<\/td>\n";
    Tr += "	<td style=\"\">\n";
    Tr += "		<select data-placeholder=\"请选择数据类型\" name=\"columnType\" id=\"select-0\" class=\"chosen-select form-control chosen-select\" style=\"display: none;\">\n";
    Tr += "			<option value=\"\">--请选择--<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"VARCHAR\">VARCHAR<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"TEXT\">TEXT<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"DATE\">DATE<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"DATETIME\">DATETIME<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"INT\">INT<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"BIGINT\">BIGINT<\/option>\n";
    Tr += "			<option data-column-length=\"\" data-column-precision=\"\" data-column-scale=\"\" value=\"DOUBLE\">DOUBLE<\/option>\n";
    Tr += "		<\/select>\n";
    Tr += "	<\/td>\n";
    Tr += "	<td style=\"\">\n";
    Tr += "		<input id=\"columnLength\" name=\"columnLength\" class=\"form-control2\" type=\"number\" placeholder=\"长度\">\n";
    Tr += "	<\/td>\n";
    Tr += "	<td style=\"text-align: center;\">\n";
    Tr += "		<select data-placeholder=\"请选择字段标记\" name=\"columnTag\" multiple=\"multiple\" id=\"select-0\" class=\"columnTag chosen-select form-control chosen-select\" style=\"display: none;\">\n";
    Tr += "			<option value=\"\">--请选择--<\/option>\n";
    Tr += "			<option value=\"11\">法人名称<\/option>\n";
    Tr += "			<option value=\"12\">统一社会信用代码<\/option>\n";
    Tr += "			<option value=\"13\">自然人姓名<\/option>\n";
    Tr += "			<option value=\"14\">身份证号码<\/option>\n";
    Tr += "			<option value=\"15\">入库时间<\/option>\n";
    Tr += "			<option value=\"16\">涉密信息<\/option>\n";
    Tr += "			<option value=\"17\">去重字段<\/option>\n";
    Tr += "			<option value=\"18\">查询关键字<\/option>\n";
    Tr += "			<option value=\"23\">自然人姓名1<\/option>\n";
    Tr += "			<option value=\"24\">身份证号码1<\/option>\n";
    Tr += "		<\/select>\n";
    Tr += "	<\/td>\n";
    Tr += "	<td style=\"text-align: center\">\n";
    Tr += "		<a class=\"btn btn-primary btn-sm \" href=\"#\" mce_href=\"#\" title=\"添加\"><i class=\"fa fa-plus\"><\/i><\/a>\n";
    Tr += "		<a class=\"btn btn-warning btn-sm \" href=\"#\" title=\"删除\" mce_href=\"#\"><i class=\"fa fa-remove\"><\/i><\/a>\n";
    Tr += "	<\/td>\n";
    Tr += "<\/tr>\n";
	return Tr;
}
